home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 1 (Walnut Creek)
/
Aminet - June 1993 [Walnut Creek].iso
/
usenet
/
sources
/
volume91
/
news
/
vnres112
/
part05
/
vn.doc
next >
Wrap
Text File
|
1991-03-14
|
25KB
|
536 lines
VN 1 6/1/88
NAME
vn - visual news reader
SYNOPSIS
vn [options]
DESCRIPTION
Vn is a news reader which uses the same \.newsrc file as readnews
(1), but displays and interacts differently. It is aimed at
allowing you to rapidly scan a large number of newsgroups, looking for
something you want to read. The major premise is that you will
be interested in a small number of articles, but will be interested in
keeping tabs on a large number of newsgroups which may contain
something interesting from time to time. It also has the ability to
unpackage digests.
As with other readers, options may be given on the command line, in
which case they will supersede those given in the \.newsrc file.
OPTIONS
Vn supports the -n, -x and -t options of readnews (specify
newsgroup, read all articles, and specify title). In addition, there
some other options: -U, -S, -%, -w, -t and some options beginning
with +. The "+" options are not recognized within the \.newsrc file,
only on the command line, and are intended for use in
environments with multiple NNTP installations. If you are not using
an NNTP version, or only have one news installation accessible from a
given machine, they are probably of little use.
The -w (writer or author) option which works like -t, but is a search
string to apply to the "From" header line rather than the subject. In
the -n, -t and -w options, a leading "!" on the string is taken to
mean negation. The rest of the string is a regular expression for
the -w and -t options.
For example:
-n net.dogs -w !fred -t [Bb]eagle
Selects articles in net.dogs about beagles written by somebody
other than fred. Multiple -w -t options are treated as follows:
If the article satisfies any of the negations, you won't
see it, regardless of the non-negated options.
Multiple -w options are logically "or'ed", as are multiple -t's.
If both -w and -t are present, the article is seen only if it
satisfies at least one of the -w's and at least one of the -t's,
i.e. the results of the logical "or's" of the -t's and of the
-w's are logically "anded" together.
The -n options allow the "all" convention, replacing ".all" by
".*" before using the regular expression calls. -n options are
processed in the order given so that subsequent, more specific,
-n's may partially undo the effect of previous "alls". Note that the -n
option treatment is slightly different than the readnews treatment
which says that "foo" implies "foo.all". Vn accepts this
incompatibility to allow you an easier way of saying JUST "foo"
without any of its subgroups.
The -S option is useful in conjunction with command line -n
options. It is really not useful in the \.newsrc file, but existed
before the "+" options were added. For command line -n options, the
"!" unsubscriptions in \.newsrc are also ignored. This allows
you to override all subscription information by command line
specification. -S will modify this behavior. If you use an -S
option on the command line, the "!" unsubscriptions will still be
used.
The -% option initially gives you the results of a "%" command, rather
than the page for the first newsgroup (see below). This allows
you to see what newsgroups are available before viewing any.
The -U option says that when your \.newsrc file is updated via
answering "yes" to the update query on exit or using control-W,
newsgroups marked with "!" are to be updated too. Normally, these
groups are left alone, i.e. updated only to the number that was
already in your \.newsrc, or the lowest article number still around.
You may get flooded should you decide to resubscribe. If you don't
like this treatment, use -U. Then, control-W and "yes" to the update
on exit will update your unsubscribed newsgroups to the most recent
article.
The "+" options mainly deal with NNTP. If you are not using an NNTP
version (will be printed in the version message on startup, version
will either be "res" or "nntp"), the +l, +m and +t options are not
recognized.
The +n option must be followed by a filename, and directly
specifies the \.newsrc file in a manner similar to the NEWSRC
variable, which it will override if defined.
The +m option must be followed by a machine name, and specifies the
machine to talk the news installation on. This will normally
default to some site-determined machine, and may also be set via
the VNMACHINE variable. The option overrides the variable, if defined.
Note that this is useful only if you have multiple news
INSTALLATIONS accessible from your machine, ie. different spooling
areas with possibly different sets of articles and different newsgroups
based on which machine you communicate with to obtain the news. A
majority of sites will not have this situation, so if you find the
explanation confusing, ignore it.
The +l option makes an NNTP version behave in a non-NNTP fashion,
ie. it directly reads the articles and newsgroup
information, rather than communicating with NNTP. An empty string for
VNMACHINE corresponds to this.
The +t option must be followed by a filename, and will cause a trace
of the interaction with the NNTP server to be collected into it.
Primarily useful for somebody installing the program. "USER
INTERFACE" When vn is invoked, there will be a pause (with an
explanatory "reading" message and a series of newsgroup names)
while vn reads the news. The newsgroups listed are ones articles
are actually being found in. The length of the pause depends on how
much news there is. If there is a lot, it may take a long time to get
through the reading phase. If this is the first time you are using vn,
or if you are starting with an empty \.newsrc file, this may take a
very long time; there is a lot of news out there.
Once the reading phase is over, interaction is rapid. If vn is
backgrounded, it suppresses the "reading" output, so that it will
not halt on tty output until it is ready to begin showing articles.
Vn may show you a list of newsgroups which were not mentioned in the
\.newsrc file. Records for these newsgroups will be added to
your \.newsrc file, whether they were scanned for articles or not. The
first time vn is used, the list may be quite long and scroll off
the screen. Thereafter, there should only be a list when new
newsgroups are created. This display serves to let you know of their
existence, or of something happening to your \.newsrc file.
The basic display is a "page" which shows a newsgroup and a list of
titles, number of lines, and authors for new articles. Articles
which have been updated in the \.newsrc file are flagged with an
underscore preceding the article number. You also have the ability
to "mark" articles for the duration of a session; this is shown with an
asterisk. (Columns 1 and 2 are reserved for asterisk and
underscore respectively. In normal usage they will be blank, so that
the casual user will probably be unaware of their use until marking and
updating are invoked.)
There is a help menu to go with this page. You may read articles,
save them, or send them to the printer, either by cursor position,
the whole page, or in specified sets. Sets are specified either as a
set of article numbers, a regular expression to match the subject
/ author / number of lines data on, or an asterisk to indicate the
choice of a set of previously marked articles. Any of these methods
also accept a leading "!" to indicate negation.
When you read articles only a couple of the dozen or so header
lines are shown. There is an option to allow you to see all the
header lines when you read articles. The command controlling this
toggles between the two states.
A similar toggle is used to support ROT13 encryption.
Vn is capable of manipulating digests. The "d" command unpacks a
digest and presents you with a page showing the unpacked
articles. These can then be accessed the same way as articles on
normal newsgroup pages. When you leave the digest page(s), you
reenter the normal flow of newsgroups. Digests can also be read as
normal articles, of course.
The order of page presentation is determined by order of the group
lines in the \.newsrc file. Newsgroups which are not mentioned in
\.newsrc will be added, as mentioned previously, at then end of
the file. Lines corresponding to non-existent newsgroups will be
deleted. You will probably want to run vn once, then edit your
\.newsrc file to the desired order of presentation.
Updating the data for \.newsrc is under user control. If you do no
"W", "w", "^w", "o" or "O" commands, no updating takes place, and
you'll see the articles again the next time you read news. If you quit
without updating, you will be prompted to make sure you this is
really what you want to do.
Note that "updating what you've seen" to vn means that you've seen
the page presentation, not that you've read the article. This is
consistent with the overall assumption that you don't want to read
most of what you are presented with.
Breaks result in a "really quit?" query, so you can recover from
noisy lines and prompts for commands you didn't really mean. If
you answer no, you are simply jumped back to the page. Breaks while in
the midst of scrolling out an article you are reading jump you to the
end of the article to stop the output.
Commands are single character (no return key required), except that
they may be preceded with numeric characters, which may have some
effect on their actions. Commands which require further input cause
prompts for the information, this input being terminated by return.
For prompted input, the erase and kill keys work.
Command Menu For Page:
[...] = effect of optional number preceding command
pipes are specified by filenames beginning with |
articles specified as a list of numbers, title search string, or
* to specify marked articles. ! may be used to negate any
q - quit
k - (or up arrow) move up [number of lines]
j - (or down arrow) move down [number of lines]
<back sp> - (or left arrow) previous page [number of pages]
<return> - (or right arrow) next page [number of pages]
> - next newsgroup [number of newsgroups]
< - previous newsgroup [number of newsgroups]
d - unpack digest
H - top of page
L - bottom of page
G - bottom of page (alternate L)
M - middle of page
d - unpack digest
r - read article [number of articles]
<space> - read article (alternate 'r')
R - read all articles on page
control-r - specify articles to read
s - save or pipe article [number of articles]
S - save or pipe all articles on page
control-s - specify articles to save
control-t - specify articles to save (alternate ctl-s)
p - print article [number of articles]
P - print all article on page
control-p - specify articles to print
w - update \.newsrc status to cursor
W - update \.newsrc status for whole newsgroup
control-w - update \.newsrc status for all pages displayed
o - recover original \.newsrc status for newsgroup
O - recover all original \.newsrc status
# - display count of groups and pages - shown and total
% - list newsgroups with new article, updated counts
n - specify newsgroup to display and/or resubscribe to
u - unsubscribe from group
x - mark/unmark article [number of articles]
* - mark/unmark article [number of articles]
X - erase marks on articles
control-x - specify articles to mark
h - toggle flag for display of headers when reading
z - toggle ROT13 mode for reading
<formfeed> - redraw screen
! - escape to UNIX to execute a command
" - show vn version
? - show this help menu
When you read articles there is another help menu for advancing
through the articles, replying, posting followups, and saving the
articles. Breaks may be used to stop the output of an article if you
decide that you didn't really want to read it. You can jump from the
reading portion back to either page you came from or the NEXT page.
For replying and posting followups, you will be placed in an editor to
create the reply or article. The article will be included in
the file you are editing, marked with "> "'s for excerpting in your
reply or followup. After exiting the editor you are prompted
to make sure you still want to post or reply.
For followups, your article is appended to "author_copy" for future
reference. (See CCFILE in the section on ENVIRONMENT VARIABLES).
Header lines for the mailer / news poster are present in the file
you are editing to allow you to modify them. Remember to leave a
blank line between the header lines and your text. It may be
OK if you don't, but why tempt fate.
The editor is determined by your EDITOR or VNEDITOR variable, as for
postnews. (See the section on ENVIRONMENT VARIABLES). If EDITOR is not
set, you get vi.
Reading menu:
n - next article, if any
q - quit reading articles, if any more to read
Q - quit reading, and turn to next page of articles
r - rewind article to beginning
<return> - next line
/ - search for a pattern in the article
m - send mail to author of article
f - post followup to article
s - save article in a file
p - send article to the printer
? - see this help menu
z - toggle rotation flag
h - toggle header suppression flag
anything else to continue normal reading
When articles are saved from anywhere, a few special conventions apply.
If the name begins with "|", you are specifying a pipe to feed the
article(s) to, rather than a file. No other interpretation is done in
this case.
If you specify a name not beginning with "/", the article will be
saved with reference to your original directory, or with reference to
the VNSAVE variable (see below).
If you embed a "%d" in the name, that will be replaced with the article
number, or the first number in a list of articles.
If you prepend "w:" to the name, you can force an overwrite instead
of an append. The colon prefix may be used to open the file
with any mode you please, actually. If you really WANT a colon in the
name, specify "a:" ahead of it. The colon prefix is stripped
off before any other filename interpretation.
Both the VNSAVE variable and the save name may use a leading "~" to
indicate the user's home or "~name" for another user's home. It is
assumed that a slash will separate the tilde expression from the rest
of VNSAVE, or the rest of the file name if there are further
directories.
When you are prompted for a savefile name, the last non-pipe name you
used is presented, so you may use your erase/kill keys to edit it.
Old search strings / pattern match strings are also presented for
edit in the same manner.
If you don't like the choice of command keys, you may change them
(default choices - basic control in article reader is ala more of
course, the "j" and "k" on the page presentation are vi convention,
other page commands are somewhat readnews compatible). If you
have a file named \.vnkey in your home directory this file will be read
in order to obtain keystroke translation. The format is simple:
Each line begins with R or P indicating translation for the reader
interaction, or the page interaction (r and p accepted also).
Following the R or P is a character, followed by an "=", followed
by another character. The character on the left hand side of the
equals sign is what you wish to input, and the character on the right
hand side of the equals sign is what you wish to translate it
to. No embedded spaces are allowed. Lines not beginning with the
proper characters are simply ignored, as are characters
following the translated character. Eg:
Pd=j
Pu=k
uses "u" and "d" instead of "j" and "k" on the page layout (presumably,
you are also going to translate something else to "u" and "d" for the
unsubscribe and digest commands). If you translate keys, it is
up to you to see that all commands can still be reached, and that
former command keys which are no longer used are mapped to something
meaningless. In particular, you are going to have difficulties if you
make it impossible to input "q". The help menus will show the "new"
keys, and bad mappings should show up as multiple definitions for the
same key, or alternate mappings not showing up on the help menu.
Mapping the "=" key via "==" works. Any keys not mentioned in the
file are translated to themselves.
Control keys are given as DECIMAL numbers with no backslashes or
anything. The decimal number is the ASCII code for the character, eg:
P24=12
P12=?
uses "control-x" for the "control-l (formfeed)" refresh key, and
maps the control-l to a "?". BTW, mapping all undefined keys to "?"
will mean that you automatically get the help display for any illegal
key, should you wish for such a thing. The LAST one mapped will
determine what key is given in the "? for help" lines, and the help
display itself. Remembering that control-A through control-Z
are ASCII codes 1 through 26 and delete = 127 may keep you from having
to consult an ASCII table. Remember also that some controls, such as
control- C, Z, S or Q may be caught by the operating system for
signal generation or terminal control, and are thus unavailable.
Because of arrow keys and the ability to prefix commands with counts,
numeric characters and the escape key may not be used for page
commands. Attempts to use them will simply do nothing.
Control keys are not available for the reader, except for newline,
backspace, and tab. The reason controls are filtered here has to do
with nasty problems involving terminal mode switches on some systems,
specifically a UTS frontend early versions were being used on.
In either interaction, "return" and "linefeed" are mapped to the
"newline" character at a level below the translation. If you don't
know the ASCII for the "newline" char, it is recommended that you
map both ASCII 10 and 13 if you wish to map "return" to something.
FILES
/usr/tmp/* One temporary file created by tmpnam (3),
and immediately unlinked, remains open in update mode for duration of
session. Disk space freed by system close of file descriptor at
exit. Can be large, as this file contains the "page" displays.
Temporary files also created by tmpnam (3) for mailing replies,
posting followups and creating digest "articles".
(login directory)/\.newsrc news status file. Updated following session.
See NEWSRC environment variable.
(login directory)/author_copy A copy of all articles posted using the
followup command will be appended to this file in /bin/mail
format. See CCFILE environment variable.
(login directory)/.vnkey Keystroke mapping file for changing
command characters.
(login directory)/*.vnXXXXXX One temporary file created by tmpnam (3)
while updating the \.newsrc file. If the update fails, you are
informed, and this file may be used to recover the last update.
Unlinked following successful update.
(spool directory)/* spooling directories containing articles.
/usr/lib/news/active active newsgroup list.
"ENVIRONMENT VARIABLES"
For all variables which do not begin with "VN", vn will accept an
override by setting a variable VN<name> which will be preferred. For
instance setting VNEDITOR allows you to use a special editor for vn
without affecting use of that variable by your shell, setting VNPS1
takes care of your normal UNIX prompt having multiple lines, or
setting VNNEWSRC allows you to use vn without disturbing your
\.newsrc for other readers.
VNSAVE Used as a directory to place saved
articles in. If it does not begin with "/", it will be taken with
respect to the users home directory. If it ends with "/%s", a
separate directory will be created for each newsgroup.
PS1 Used to present prompt string for command on unix escape.
Defaults to "$ "
EDITOR Editor used for mailing replies and posting followups. Defaults
to vi.
POSTER Posting program for followups. Defaults to "inews -h".
MAILER Used when mailing replies. Defaults to "sendmail -t".
PRINTER Program used with the print commands for sending articles to
the printer. Defaults to "lpr".
NEWSRC If set, can be used to override the choice of \.newsrc as the
name for the status file. Name will still be used relative to
the login directory, unless it begins with "/".
CCFILE If set, overrides the choice of "author_copy" as the
name of the file to CC all articles posted with the followup
command. Name will still be used relative to the login directory,
unless it begins with
"/".
VNKEY If set, overrides the choice of ".vnkey" as the name of the file
to map keys from. Name will still be used relative to the login
directory, unless it begins with "/".
VNMACHINE Applies only to NNTP versions - sets the machine to talk
to. See discussion of options, above.
DIAGNOSTICS User error messages. Self explanatory.
AUTHOR Bob McQueer.
Significant enhancement / bugfixes / suggestions from:
Lawrie Brown, John G Dobnick, Greg Earle, Rodney Goke, Andy
Marrinson, Jay Maynard, Marius Olafsson, George Pavel, Dave
Tallman, Larry Tepper, Karl Williamson, Mark Wittenberg, Andrew
Worsley
And undoubtedly some others who have been forgotten. My apologies.
BUGS Note that readnews will rearrange the order of \.newsrc. If
you interleave use of it with vn, order selection gets hosed.
If you've really taken advantage of the ability of readnews to skip
articles in the middle of the spooling numbers, be warned that vn
doesn't have it, and will assume you've read the articles in the
middle.
If the \.newsrc file indicates that you've read articles in a newsgroup
with a higher number than the current spooling number for that
newsgroup, vn will show you up to 60 old articles. This is
intended for recovery in cases where article spooling has been reset,
or to avoid missing articles because you just changed machines and
didn't bother to edit your \.newsrc file. Rather than miss stuff,
you'll see some old stuff again. During the reading phase, a
warning message is printed that this is happening.
Sometimes a "break" during reading an article will not only halt the
article but suppress the prompt. A command character will work anyway.
If a prompt to be displayed on the dialogue line contains
non-printing sequences, stuff on the line may not get erased when you
are prompted, because vn thinks the string is long enough to overprint
its current contents. This usually comes up when you have escape
sequences in your UNIX prompt, and do a "!" command. The "overprint"
check is made to save a clear-line sequence (kludged in by
overprinting to the end with blanks if the terminal doesn't have one -
annoying at 1200 baud).
Output during the reading phase which was suppressed by backgrounding
vn does not get started by foregrounding it again without doing a
control-z and a second foreground (it doesn't figure out its
background / foreground status on each output - only on startup
and while handling the SIGTSTP signal). Actually, this results in
a method for having vn do its reading phase silently in the foreground
without redirecting output, should such a thing be desired.
Very many -w or -t options cause SLOW reading phases. It is
recommended that these be used only when reading a few specific
groups.
Digest extraction will split a single article into several if it
contains embedded ---- lines, the normal separator between articles in
digests. They will all have identical titles. Digest
extraction may not work with human built digests which don't use the
expected syntax for joining articles. Mod.computers.ibm-pc and
mod.computers.mac were used as models for the feature.
The data given by the % command represents the difference between
the last article number you've updated to in a newsgroup and the
high article number. This may be significantly greater than the number
of actual articles for a newsgroup you haven't been reading, and
for newsgroups that have had a lot of articles filtered out of them
using the -w and -t options. The numbers given for menu selection in
the % command are the order numbers from the \.newsrc, and have
gaps for unsubscribed newsgroups.
The key mapping capability doesn't handle function keys. Because of
the use of controls as commands, terminals whose arrow keys echo
something other than a sequence beginning with escape can't use arrow
keys. For these terminals, a warning message is printed during the
reading phase.